Skip to main content

🗂️ Documentação do Banco de Dados

Este documento apresenta a modelagem do banco de dados para a plataforma, com foco em perfis de usuários (estudantes), empresas, vagas e relacionamentos adicionais, como candidaturas, experiências profissionais e atividades extracurriculares.

O banco de dados da plataforma Next Generation of Lawyers é estruturado para conectar jovens talentos jurídicos a empresas e oportunidades de carreira. Ele oferece suporte a perfis de estudantes e empresas, bem como seus relacionamentos com experiências profissionais, prêmios, atividades extracurriculares, vagas e candidaturas.


1. Estrutura do Banco de Dados

  • Usuários (Estudantes): Contas pessoais contendo dados básicos, acadêmicos e profissionais, incluindo interesses, objetivos de carreira, hobbies, biografia e campos opcionais como tipo de bolsa e ocupação atual. Estudantes também podem adicionar experiências, prêmios e atividades extracurriculares ao seu perfil.

  • Empresas: Perfis institucionais com campos como nome, e-mail, logo, missão, valores e descrição. As empresas podem criar e gerenciar vagas.

  • Vagas: Oportunidades de estágio, emprego ou desenvolvimento, com detalhes como requisitos, área jurídica, benefícios, remuneração e referência à empresa responsável.

  • Candidaturas: Registros das aplicações dos estudantes às vagas, incluindo status e data da candidatura.

  • Experiências: Histórico profissional do estudante, detalhando cargo, empresa, período e observações adicionais.

  • Prêmios: Conquistas acadêmicas ou profissionais, como bolsas de estudo, competições ou reconhecimentos institucionais.

  • Atividades Extracurriculares: Participações em organizações estudantis, projetos ou iniciativas sociais.


2. Diagrama ERD

Abaixo está o diagrama ERD utilizando dbdiagram.io:

Database


🧑‍🎓 User

CampoTipoDescrição
idIntIdentificador único
full_nameStringNome completo
emailStringE-mail do usuário (único)
passwordStringSenha criptografada
next_yearInt?Ano de participação no projeto NEXT
universityString?Universidade atual
graduation_yearInt?Ano de graduação
profile_photoString?URL da foto de perfil
linkedin_urlString?URL do perfil no LinkedIn
interestsString[]Áreas de interesse
career_goalsString?Objetivos de carreira
hobbiesString[]Hobbies pessoais
bioString?Biografia / resumo profissional
current_jobString?Cargo atual (se houver)
scholarship_typeString?Tipo de bolsa (integral/parcial)
created_atDateTimeData de criação
updated_atDateTimeÚltima atualização

Relacionamentos:

  • 1:N com Experience, Award, Extracurricular, Application.

🧪 Experience

CampoTipoDescrição
user_idIntReferência ao usuário
roleStringCargo
companyStringNome da empresa
start_dateDateTimeData de início
end_dateDateTimeData de término
descriptionString?Descrição adicional
created_atDateTimeData de criação
updated_atDateTimeÚltima atualização

🏅 Award

CampoTipoDescrição
user_idIntReferência ao usuário
titleStringNome do prêmio/bolsa
institutionStringInstituição concedente
yearIntAno da premiação
created_atDateTimeData de criação
updated_atDateTimeÚltima atualização

🎓 Extracurricular

CampoTipoDescrição
user_idIntReferência ao usuário
activityStringNome da atividade
organizationStringOrganização responsável
yearIntAno de participação
created_atDateTimeData de criação
updated_atDateTimeÚltima atualização

🏢 Company

CampoTipoDescrição
idIntIdentificador único
nameStringNome da empresa
emailStringE-mail corporativo (único)
passwordStringSenha criptografada
descriptionString?Descrição da empresa
logoString?URL do logo
missionString?Missão da empresa
valuesString?Valores da empresa
created_atDateTimeData de criação
updated_atDateTimeÚltima atualização

Relacionamentos:

  • 1:N com Job.

📄 Job

CampoTipoDescrição
idIntIdentificador único
titleStringTítulo da vaga
descriptionStringDescrição da vaga
requirementsStringRequisitos para candidatura
areaStringÁrea jurídica
salaryString?Faixa salarial
benefitsString?Benefícios oferecidos
locationString?Localização da vaga
company_idIntReferência à empresa
created_atDateTimeData de criação
updated_atDateTimeÚltima atualização

Relacionamentos:

  • 1:N com Application.

📬 Application

CampoTipoDescrição
idIntIdentificador único
user_idIntReferência ao estudante
job_idIntReferência à vaga
statusStringStatus da candidatura ("Applied", "Interview", "Offer")
applied_atDateTimeData da candidatura

🔗 Relacionamentos

User 1 — N Experience
User 1 — N Award
User 1 — N Extracurricular
User 1 — N Application
Company 1 — N Job
Job 1 — N Application

☁️ Hospedagem do Banco de Dados — AWS RDS (PostgreSQL)

📌 Visão Geral

O banco de dados da plataforma Next Generation of Lawyers está hospedado na Amazon Web Services (AWS) utilizando o serviço RDS (Relational Database Service) com PostgreSQL 15. A hospedagem na AWS oferece alta disponibilidade, backups automáticos, escalabilidade e segurança robusta.

⚙️ Configuração da Instância

ParâmetroValor
Nome da instâncianext-db
Regiãous-east-1 (Norte da Virgínia)
Versão do PostgreSQL15
Conectividade públicaAtivada (com regras no Security Group)
Endpointdatabase-1.cfssllf0qlz6.us-east-1.rds.amazonaws.com
Porta5432
Backup automáticoAtivado
Usuário principalpostgres
Banco inicialnext_db

🔐 Acesso Seguro

✅ Configure o Security Group da VPC para permitir conexões na porta 5432 a partir de:

  • Seu endereço IP (para desenvolvimento local)
  • Seu provedor de hospedagem do backend (ex.: Vercel, Railway, Render)

🔗 URL de Conexão

DATABASE_URL="postgresql://postgres:<senha>@database-1.cfssllf0qlz6.us-east-1.rds.amazonaws.com:5432/next_db"

🛠️ Migrações Prisma

Após configurar a conexão, execute:

npx prisma migrate resolve --applied "*"
npx prisma migrate deploy

✅ Conclusão

A arquitetura e a hospedagem do banco de dados garantem segurança, confiabilidade, escalabilidade e fácil integração com os serviços da plataforma Next Gen Lawyers.